Repository navigation
Conversation
Save channel-scoped repository and lane settings through the existing signed relay artifact path. Keep configuration separate from review execution and preserve drafts on failed saves or reconnects. Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Use the shared agent inventory and keep unavailable selections visible. Expose refresh and partial discovery errors so users can recover. Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Persist reviewer instruction snapshots and thread links. Recover interrupted delivery through the existing outbox without creating duplicate review threads. Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Preview title, label, file-count, and path rules before sending. Keep new submissions to lane threads, retain legacy recovery, and collapse saved PR details. Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Group agents and routing rules within each lane. Require a rule for new or edited lanes and preserve readable legacy settings. Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
…iewers Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Preserve the upstream session and tool-operation APIs alongside the review thread context and tool-documentation API. Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz> Signed-off-by: Ravneet Arora <rarora@squareup.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Communities need to route PRs to configured reviewers and see whether each review needs work, awaits the author, or is done.
What
Add an optional Review Configuration plugin with repository settings, named review lanes, agent assignments, instructions, and routing rules. Separate Submit PR and Pull requests pages share Back navigation. Submit uses a full GitHub PR URL and assigns the first saved reviewer in each matching lane.
The table shows GitHub status, internal review status, delivery, reviewers, and thread links. The submitter can remind reviewers or delete a submission. Closed, merged, loading, and unavailable PRs cannot be reminded. Deletion preserves conversations; resubmission creates new threads with current routing.
How
Reuse existing signed relay artifacts, agent choices, the durable outbox, and shared controls. Routing supports all/any rules on title, labels, file count, and paths. Saved assignments remain unchanged when repository configuration changes.
Add the standard
pr_review_status_updatetool with exactly one argument:status, eitherdoneorwait_author. The host supplies the review thread outside model arguments. The tool resolves the current assignment and checks the caller. Signed status messages persist reports and notify the thread; the dashboard accepts only reports from the assigned reviewer for the current request. Remind resets lanes to Needs review and resumes interrupted notification batches from their original browser profile.The plugin fetches the tool's description and schema through
agents.describeTooland appends them to review requests. It keeps no documentation copy. Incoming reports update the table without polling; Reload reconciles shared submission changes and missed reports. Bounded report reads fail visibly if incomplete. No SQL migration, scheduled reminder, or GitHub write is added.Risk
This POC assumes one active review per PR, with sequential re-reviews in saved lane threads. It does not distinguish an old turn's late call after a new review starts. Native Codex thread sessions and shared HarnessKit supply review context. Standalone MCP supports a host-set
BUZZ_REVIEW_THREADon a process dedicated to one thread; legacy ACP launchers must pass these variables per thread session. The local ACP runner uses a separate lab patch for that handoff, which is not shipped by this app PR. Other adapters and channel-wide sessions refuse updates without trusted context.Review authorization is checked by the tool and dashboard; the relay retains its generic signature and channel-access rules. Channel readers can see saved instructions. Older clients must be updated for this lifecycle. Deleted records count toward the 100-record list limit. Browser GitHub reads use the public API; private PRs require signed-in desktop
gh. Routing rejects incomplete metadata and supports up to 3,000 files and 100 labels.Testing
TypeScript and required pre-push unit/design checks passed on the final app branch. The full pre-merge Vitest run passed 20,923 tests with 25 skipped.
Real local relay, browser UI, and built standalone MCP: submit →
wait_author→ live table update → Remind → Needs review →donethrough the same MCP process. Duplicate status was idempotent; a model-supplied PR argument was rejected. The delivered request contained tool-owned documentation. GitHub metadata was a controlled fixture; signing, storage, tool calls, and notifications were real.Two actual Codex reviewers used the patched thread-scoped ACP lab runner to recover completed work and save their own
donereports. Both signed reports were read back and the table showed Done. This verifies reporting; one lane was configured for acknowledgment only.Light/dark, wide/narrow, and enlarged-text checks covered the table, keyboard Reload, focus, and a horizontally scrollable table without page overflow. Shared owners include FullPageSurface, PanelHeader, Field/Input/Button, IconButton, AlertDialog, LoadingRegion, and Avatar.
Earlier live checks covered matching lanes, unknown repositories, repeated submission, delete/resubmit with new threads, Back/Forward, and closure after table load preventing reminders. GitHub fixture states were not changed.
Independent review covered runtime context, reporting, notification recovery, and snapshot/live reconciliation. Human final-flow confirmation and native-app acceptance remain pending; keep this draft.
To try: enable Review Configuration, select a test channel, and register a repository with reviewer lanes and rules. Submit a test PR. Use a supported reviewer runtime; its request explains the status-only tool. Check Pull requests, then Remind and verify the status resets in the same thread.
Generated with Codex